home *** CD-ROM | disk | FTP | other *** search
/ Mac Expert 1995 Winter / Mac Expert - Winter 95.iso / Les fichiers / Communications / Internet / TurboTCP 2.1 ƒ / TurboTCP core / TurboTCP.version.note < prev    next >
Encoding:
Text File  |  1995-01-04  |  14.0 KB  |  290 lines  |  [TEXT/MMCC]

  1. //
  2. //    TurboTCP library
  3. //    Copyright © 1993-95, FrostByte Design / Eric Scouten
  4. //
  5. //    Version history
  6. //
  7.  
  8. Current version: 2.1d1
  9.  
  10.  
  11. Version history:
  12. --------------
  13.  
  14. 1.0d1 (7 June 1993)
  15.   *    initial release
  16.  
  17. 1.0d2 (9 June 1993)
  18.   *    created CTCPDriver object to handle primary TCP functions (checking for
  19.       MacTCP, fetching local IP address)
  20.   *    changed inheritance of CTCPStream from CCollaborator to CObject
  21.       since CCollaborator caused problems disposing a stream, and
  22.       CCollaborator methods were unnecessary
  23.   *    fixed bugs in CTCPStream::Dispose and DelayDispose
  24.   *    fixed bugs in CTCPAsyncCall::Dispose
  25.   *    added minimal support for Telnet protocol to CTelnetDoc
  26.  
  27. 1.0d3 (11 June 1993)
  28.   *    renamed to TurboTCP library
  29.   *    major structural change: separated core functions into “TurboTCP base classes”
  30.       and TCL support to "TurboTCP adv classes"
  31.   *    removed use of CCollaborator::BroadcastChange() mechanism
  32.   *    created new CTCPSessionDoc class to cover typical session behavior
  33.  
  34. 1.0d4 (16 June 1993)
  35.   *    added TCP resolver functions (uses source file “dnr.c” from MacTCP
  36.       Dev Kit, with several mods)
  37.   *    added list of TCP streams to CTCPDriver; this allows the driver to
  38.       dispose of all streams that were accidentally not disposed during
  39.       program operation
  40.   *    changed “inherited::” method calls to specific class references (BRB)
  41.   *    changed class definitions to “class ___ : public ___” notation
  42.       to support TC 6.0 (BRB)
  43.   *    added typecasts to support TC 6.0’s stricter typechecking (BRB)
  44.   *    changed CTCPStream::Dispose to wait until TCP stream is terminated
  45.       before disposing itself
  46.   *    DemoTelnet: implemented dialog box to allow user to choose host
  47.       (CTelnetDoc::NewFile)
  48.  
  49. 1.0d5 (17 June 1993)
  50.   *    updated projects to run under TC 6.0
  51.   *    added completion routine for TCPRcv call (CTCPAsyncCall::Dispatch)
  52.   *    changed completion/notification routines so that Failures are trapped
  53.       and the call chain continues (CTCPAsyncCall::ProcessCompletion,
  54.       CTCPResolver::ProcessNotify, CTCPStream::ProcessNotify)
  55.   *    changed CTCPDriver::ProcessNetEvent to re-issue the Failure which
  56.       occured during the above completion/notification routines
  57.  
  58. 1.0d6 (18 June 1993)
  59.   *    fixed bug in CTCPResolver which allowed the resolver object
  60.       to be disposed while ProcessNotify was still running
  61.  
  62. 1.0d7 (30 June 1993)
  63.   *    renamed source files to “.cp” notation; separated all in-line assembly
  64.       to separate “.asm” files for compatibility with SC++ 6.0
  65.   *    moved ProcessNetEvents to TCPAsync.asm (no longer a method
  66.       of CTCPDriver)
  67.   *    separated interrupt-level code to end of each source file;
  68.       hooks in place for using Think Profiler
  69.   *    fixed incorrect typecasts (byte instead of unsigned short) in
  70.       CTCPStream::NoCopyRcv & CTCPStream::Receive
  71.  
  72. 1.0d8 (5 July 1993)
  73.   *    separated TCPAsync.asm into separate .asm and .cp files for SC++
  74.       compatibility (BRB)
  75.   *    fixed bug in CTCPStreamForDoc::SendCString which treated
  76.       strings as Pascal strings
  77.   *    fixed bug in CTCPStream::BfrReturn which allowed buffers to
  78.       be returned after the session closed
  79.   *    deleted “TurboTCP DNR classes” folder; moved items to
  80.       “base classes” and “doc classes” (renamed) folders
  81.   *    filled in CTCPSessionDoc::HandleSendFailed and HandleTerminated;
  82.       both methods now report error messages and ask for responses
  83.   *    changed error handling in CTCPStream; all methods now call the
  84.       HandleTCPError, HandleOpenFailed, or HandleSendFailed methods
  85.       instead of FailOSError (except for initialization)
  86.   *    changed CTCPSessionDoc to allow window to stay open when the
  87.       session is closed
  88.  
  89. 1.0d9 (9 July 1993)
  90.   *    fixed bug in CTCPStreamForDoc::SendCString which treated C
  91.       strings as Pascal strings; then got inspired to write a routine
  92.       which sends Pascal strings (CTCPStreamForDoc::SendPString)
  93.   *    added implementation of Telnet TERMINAL-TYPE protocol
  94.       (albeit only with UNKNOWN terminal)
  95.   *    added commands to send the standard Telnet NVT commands
  96.       (Synch, Break, IP, etc.)
  97.   *    made the debugging codes a permanent feature
  98.   *    implemented Telnet settings dialog box
  99.   *    added icons to DemoTelnet application & settings document
  100.   *    implemented Telnet EraseChar & EraseLine commands
  101.   
  102. 1.0d10 (20 July 1993)
  103.   *    modified CTCPDriver.cp to reflect the new Apple standard for
  104.       GetMyIPAddr.h type names (i.e., GetAddrParamBlock instead of
  105.       my definition of IPParamBlock) (BRB)
  106.   *    added “dnr.h” file with full prototypes for functions in dnr.cp (BRB)
  107.   *    removed inherited reference in CTCPSessionDoc::Dispose (BRB)
  108.   *    removed HLock calls in CTCPResolver::ITCPResolver and
  109.       CTCPStream::ProcessNotify (BRB)
  110.   *    added code to check for Hosts file in system folder (BRB)
  111.   *    moved SendBfrCpy, SendChar, SendCString, SendPString from
  112.       CTCPStreamForDoc to CTCPStream; added SendBfrNoCpy
  113.   *    modified CTCPAsyncCall::Dispatch so that disposing the data sent
  114.       was optional
  115.  
  116. 1.0d11 (19 August 1993)
  117.   *    added several features to DemoTelnet to support add-on applications
  118.   *    DemoTelnet: fixed bug in CTelnetSettingsDLOG which caused
  119.       application to fail continously when Close (Cmd-W) was used
  120.   *    DemoTelnet: cursor is now always visible when the terminal is
  121.       no longer the gopher
  122.   *    changed CTCPSessionDoc::AutoTitle to incorporate display of filename
  123.       and hostname; also to read strings from STR# resources
  124.   *    TCPAsync.asm: several minor optimizations
  125.   *    CTCPAsyncCall, CTCPStream: optimized code in several locations,
  126.       avoiding method lookups whenever possible in the ProcessNetEvents sequence
  127.       (especially for TCPNoCopyRcv operations)
  128.   *    revised auto-receive configuration to permit multiple TCPNoCopyRcv
  129.       commands to be issued simultaneously, with configurable RDS sizes
  130.   *    revised appearance of source files, with better descriptions of some
  131.       function parameters
  132.   *    separated DemoTelnet’s TerminalPane into separate library, and released
  133.       it to FTP sites independent of TurboTCP
  134.  
  135. 1.0b1 (10 September 1993)
  136.   *    split CTelnetDoc into CTelnetInterpreter and CTelnetTerminal to support
  137.       Telnet protocol with and without terminal operation; included
  138.       CTelnetInterpreter as part of standard TurboTCP
  139.   *    renamed some source files in DemoTelnet
  140.   *    added safety check code in CTCPSessionDoc::AutoTitle
  141.   *    prevented DemoTelnet from opening wrong file types on open
  142.   *    moved the code to create a MacTCP stream from CTCPStream::ITCPStream
  143.       to OpenConnection to improve stability under certain debugging conditions
  144.   *    fixed bug in CTCPStream which occurred when a stream was disposed with
  145.       a pending PassiveOpen or ActiveOpen call; previously, the stream would go
  146.       into an endless loop waiting for the call to be completed
  147.   *    modified CTCPSessionDoc::HandleClosing to induce a TCPClose call when
  148.       a remote close occurs (even if the goAwayOnClose flag is off)
  149.  
  150. 1.0b2 (26 September 1993)
  151.   *    now ignores “connectionDoesntExist” messages when issuing a TCPClose command
  152.   *    wrote near-final documentation
  153.   
  154. 1.0b3 (11 October 1993)
  155.   *    renamed DemoTelnet to MiniTelnet, created separate version history file
  156.   *    now ignores “connectionClosing” errors when issuing a TCPClose command
  157.   *    also ignores “connectionClosing & connectionDoesntExist” errors when responding
  158.       to completion of TCPNoCopyRcv commands
  159.   *    forced TCPStream objects to be locked at all times, preventing ASR notification
  160.       from occurring during memory shuffles
  161.   *    removed hard-coded references to data structure sizes
  162.   *    corrected documentation for CTCPAsyncCall::Dispose (no longer disposes of next in chain)
  163.   *    changed /* comments to //
  164.   *    replaced GetNotifLinks (global) with CTCPDriver::GetNotifLink (protected method), which
  165.       reads a single notification link (done to reduce time spent with interrupts disabled)
  166.   *    moved global variables (except gTCPDriver) to static class variables of CTCPDriver
  167.   *    changed notification links to be a part of CTCPDriver (ProcessNetEvents, etc.);
  168.       improved documentation of this feature
  169.   *    fixed bug in CTelnetInterpreter that caused it to read high-ASCII characters (≥0xA0)
  170.       as control characters and hang
  171.   *    changed CTCPStream::ITCPStream to use TCL exceptions mechanism
  172.   *    CTCPDriver now enforces DNR’s limit of 8 simultaneous calls
  173.   *    converted some #define’s to enum’s
  174.  
  175. 1.0b4 (19 October 1993)
  176.   *    slight changes in documentation
  177.   *    first public beta release
  178.  
  179. 1.0b5 (25 October 1993)
  180.   *    changed methods in .asm files to non-object procedures; done for compatibility with
  181.       SC++ (sigh)
  182.   *    removed static keyword from CTCPStream::NotifyProc definition in source file
  183.   *    used macro CLASS for forward definitions of TCL objects in header files
  184.   *    removed file "dnr.cp"; incorporated functionality into CTCPResolverCall.cp;
  185.       no longer depends on <AddressXlation.h> or <dnr.h>
  186.   *    changed sequence of parameters to CTCPSessionDoc::ITCPSessionDoc to be
  187.       compatible with CDocument::IDocument (printable & rcvBufferSize switched)
  188.   *    #ifdef __cplusplus / extern "C" / #endif constructs added for compatibility
  189.       with Symantec C++
  190.   *    documentation changed to reflect the typical use of CTCPStream (in the subclass
  191.       CTCPStreamForDoc)
  192.   *    changed  CTCPStream::itsStream & itsResolver to public fields, rather than protected
  193.  
  194. 1.0b6 (21 November 1993)
  195.   *    allows subclasses of CTCPSessionDoc to set window titles without host or filenames
  196.       by setting both showHostName and showFileName to false (see AutoTitle)
  197.   *    moved code to open “Hosts” file from CTCPResolverCall::ITCPResolverCall to OpenResolver
  198.   *    restructured completion/notification/disposal lists to use Enqueue/Dequeue mechanism;
  199.       removed all .asm files (yea!)
  200.   *    removed CTCPStream::__HandleOpened and __HandleOpenFailed methods
  201.   *    restructured link between CTCPStream/CTCPResolverCall and CTCPSessionDoc to use
  202.       the CCollaborator mechanism for message passing; removed CTCPStreamForDoc
  203.       and CTCPResolverForDoc classes
  204.   *    corrected CTCPApplication::Exit to also call the CApplication::Exit method
  205.  
  206. 1.0b7 (17 December 1993)
  207.   *    eliminated itsSupervisor field from CTCPStream and CTCPResolverCall; both classes
  208.       now require the dependent objects to set up the dependency (DependUpon (stream))
  209.   *    CTCPResolver no longer returns the resolverInUseErr message
  210.   *    removed CTCPStream::OwnerDied and CTCPResolver::OwnerDied; those using
  211.       receive bypass procedures must now call CTCPStream::InstallRcvBypassProc(nil)
  212.       before disposing of the dependent object
  213.   *    adjusted CTCPSessionDoc to reflect above changes
  214.   *    receive bypass procedure target type changed from CDirectorOwner to CObject
  215.   *    CTCPStream::Send, SendBfrCpy, SendBfrNoCpy now ignore attempts to send 0 bytes
  216.   *    replaced CTCPApplication::Exit with ::Quit method, so that event handlers would still be valid;
  217.       added new dialog box describing delay in quitting
  218.   *    added CTCPStream::BroadcastSafeChange method to allow objects to dispose themselves
  219.   *    changed CTCPAsyncCall::DispatchNoCopyRcv to issue _asynchronous_ BfrReturn call
  220.   *    created precompiled headers, cleaned up header dependencies
  221.   *    improved documentation in headers; each class definition is now proceeded by a definition
  222.       of the class’ purpose and relationships to other classes in the library
  223.  
  224. 1.0 final (10 January 1994)
  225.   *    minor documentation changes, no source code changes
  226.  
  227. 1.0.1 (19 January 1994)
  228.   *    corrected minor bug in CTCPResolverCall::OpenResolver
  229.   *    recompiled MiniTelnet without a certain silly line in Failure() which gauranteed a
  230.       MacsBug crash anytime a minor error occurred
  231.  
  232. 2.0d1 (26 May 1994)
  233.   *    ported to TCL 2.0 (including CodeWarrior TCL port)
  234.   *    added new CTCPProtocolInterp mix-in class containing most of the
  235.       functionality previously in CTCPSessionDoc
  236.   *    modified CTCPStream and CTCPResolverCall to work with CTCPProtocolInterp only
  237.   *    made CTCPSessionDoc a subclass of both CDocument and CTCPProtocolInterp
  238.   *    removed CheckedCast, replaced with TCL_DYNAMIC_CAST
  239.   *    redesigned access control, extensive use of C++ friends
  240.   *    removed receive-bypass procedures
  241.   *    buggy pre-release version
  242.  
  243. 2.0b1 (30 May 1994)
  244.   *    fixed problems with UPPs in Metrowerks’ <TCPPB.h> header
  245.   *    removed UPP code from 68K versions (conditional compilations)
  246.   *    modified CTCPAsyncCall::CompletionProc to eliminate reference to class structure or
  247.       application globals
  248.   *    first stable version under Metrowerks compilers
  249.  
  250. 2.0b2 (2 June 1994)
  251.   *    parts of new documentation written
  252.   *    fixed problems with CTCPResolverCall callbacks in Symantec C++ (added extern "C")
  253.   *    fixed problem with CTCPAsyncCall::CompletionProc in Symantec C++
  254.       (use an ugly hack to get at the parameter in A0, instead of looking for it on the stack)
  255.   *    first stable version under Symantec C++ compiler
  256.  
  257. 2.0b3 (11 July 1994)
  258.   *    new documentation completed
  259.   *    added UTurboTCP utility class; made CTCPDriver a private, internal class
  260.   *    changed CTCPApplication to use new interfaces to UTurboTCP
  261.   *    fixed bug in CTCPSessionDoc::RemoteClose() and CTelnetTerminal::RemoteClose(): both
  262.       methods forgot to call the inherited RemoteClose() method
  263.   *    modem-friendly: removed CheckTCPDriver() and CheckResolver() calls from
  264.       CTCPDriver constructor
  265.   *    renamed CTCPProtocolInterp to CTCPEndpoint (to match OpenTransport terminology)
  266.   *    moved SendChar, SendCString, SendPString to CTCPEndpoint
  267.   *    added stream output operators (operator <<) to CTCPEndpoint
  268.   *    added maximum # TCP events and maximum tick count to net event loop
  269.       (see UTurboTCP::ProcessNetEvents())
  270.   *    silenced invalidRDS error for TCPRcvBfrReturn call (occurs frequently with VAX hosts
  271.       when canceling operations, etc.)
  272.  
  273. 2.0b4 (11 October 1994)
  274.   *    fixed problem with CTCPStream passing notifications to CTCPEndpoint after
  275.       endpoint object disposed
  276.   *    added new project files for Metrowerks CodeWarrior CW/4.5
  277.  
  278. 2.0 final (21 November 1994)
  279.   *    fixed problem with disposing of connections when receiving data that could result in the
  280.       MacTCP stream being disposed twice
  281.   *    adapted for compatibility with old and new Universal Headers (especially <MacTCP.h>)
  282.  
  283. 2.0.1 (22 November 1994)
  284.   *    fixed compile-time error with old Universal Headers
  285.  
  286. 2.1d1 (__ January 1995)
  287.   *    divorced core classes from TCL dependencies
  288.   *    changed commenting style for ObjectMaster
  289.   *    introduced new headers TurboTCP.buildflags.h and TurboTCP.types.h
  290.   *    improved handling of older Apple header files